import ChiVoxSDK from 'chivox';
import Config from './config';

import $ from 'jquery';
import '../css/chivox-example.css';

var refText = "past";

let sdk = new ChiVoxSDK({
    appKey: Config.appKey,
    //mode: ChiVoxSDK.MODE.FLASH,
    sigurl: "/token",
    data: {
      audioUrl: "/static/past.mp3",
      serverParams: {
        coreType: "en.word.score",
        refText: refText,
        rank: 100,
        userId: "chivox tester",
        client_params: { ext_subitem_rank4: 0, ext_word_details: 1, ext_phn_details: 1 }
      }
    },
    onInit: (errno, err) => {
        console.info('[ onInit ]:', errno, err);
    },
    onError: (err) => {
        console.info('[ onError ]:', err);
    },
    onBeforeRecord: () => {
      $(".scoreResult .overall").empty();
      $(".scoreResult .phone").empty();
    },
    onScore: (data) => {
      var resultObj = new ChiVoxSDK.EnWordScore(data);
      console.debug('[ onScore ]:', data);

      $(".scoreResult .overall").html(resultObj.getOverall());

      var html = '', htmlA = '', htmlB = '';
      html += '<table border="0" cellpadding="0" cellspacing="0">';
      for (var i = 0; i < resultObj.getWordSize(); i++) {
        for (var j = 0; j < resultObj.getWord(i).getPhoneSize(); j++) {
          htmlA += '<td width="30">' + ChiVoxSDK.EnScoreMap.get(resultObj.getWord(i).getPhone(j).getChar()) + '</td>';
          htmlB += '<td>' + resultObj.getWord(i).getPhone(j).getScore() + '</td>';
        }
      }

      html += '<tr><td>/</td>' + htmlA + '<td>/</td></tr>';
      html += '<tr><td>&nbsp;</td>' + htmlB + '<td>&nbsp;</td></tr>';
      html += '</table>';
      $(".scoreResult .phone").html(html);
    },
    onScoreError: (errorType) => {//评分失败的显示 "TIMEOUT", "NO_DATA", ErrorID
      var errorObj = ChiVoxSDK.StatusCode.get(errorType, "cn");
      alert(errorObj.feedback);
    }
});

$(".changeWordButton").click(() => {
  refText = "present";
  $(".currentWord").html(refText);
  $(".scoreResult .overall").empty();
  $(".scoreResult .phone").empty();
  sdk.setData({
    audioUrl: "/static/present.mp3",
    serverParams: {
      coreType: "en.word.score",
      res:"eng.wrd.g4",
      refText: refText,
      rank: 100,
      userId: "chivox tester"
    }
  });
});

$(".currentWord").html(refText);
$('#info').text(`ChiVoxSDK ver: ${ChiVoxSDK.VERSION}, mode: ${ChiVoxSDK.mode(sdk.options.mode)}`);
